﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Runtime.Remoting.Messaging;
using System.Text;

namespace Jquery.DAL
{
    public class DbContextFactory
    {
        /// <summary>
        /// 获取当前线程的ef上下文对象,用于保证线程内唯一
        /// CallContext 是类似于方法调用的线程本地存储区的专用集合对象，并提供对每个逻辑执行线程都唯一的数据槽。
        /// 数据槽不在其他逻辑线程上的调用上下文之间共享。
        /// 当 CallContext 沿执行代码路径往返传播并且由该路径中的各个对象检查时，可将对象添加到其中。
        /// </summary>
        /// <returns>ef上下文对象</returns>
        public static DBjquery GetCurrentThreadDbContext()
        {
            DBjquery context = (DBjquery)CallContext.GetData("DBjquery");
            if (context==null)
            {
                context = new DBjquery();
                CallContext.SetData("DBjquery", context);
            }
            return context;
        }
    }
}
